//package org.example;
//
//import com.zhaofujun.filequeue.FileQueue;
//import com.zhaofujun.filequeue.FileQueueFactory;
//import com.zhaofujun.filequeue.KryoSerializerV2;
//
//import java.io.IOException;
//
//public class Main {
//    public static void main(String[] args) throws IOException {
//
//        FileQueue<User> fileQueue = FileQueueFactory.createFileQueue("queue", 100000, new KryoSerializerV2<>(User.class));
//
//        //写入100万条数据，测试性能
//        long startTime = System.currentTimeMillis();
//        for (int i = 0; i < 1000; i++) {
//            User user = new User();
//            user.setName("name" + i);
//            user.setAge(i);
//            fileQueue.push(user);
//        }
//        long endTime = System.currentTimeMillis();
//        System.out.println("写入1000条数据耗时：" + (endTime - startTime) + "ms");
//
//
//
////        write(fileQueue);
////
////
////        read(fileQueue);
//
//
//        System.in.read();
//    }
//
//
//    private static void write(FileQueue<User> fileQueue) {
//        //模拟10个线程写队列
//        for (int i = 0; i < 10; i++) {
//            new Thread(() -> {
//                try {
//                    for (int j = 0; j < 10; j++) {
//                        User user = new User();
//                        user.setName("name" + Thread.currentThread().getName() + "--" + j);
//                        user.setAge(j);
//                        fileQueue.push(user);
//                    }
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }).start();
//        }
//    }
//
//    private static void read(FileQueue<User> fileQueue) {
//        //模拟10个线程读队列
//        for (int i = 0; i < 10; i++) {
//            new Thread(() -> {
//                try {
//                    while (true) {
//                        User user = fileQueue.pop();
//                        System.out.println(user);
//                        try {
//                            Thread.sleep(10);
//                        } catch (InterruptedException e) {
//                            throw new RuntimeException(e);
//                        }
//                    }
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }).start();
//        }
//    }
//
//}
